package cn.aws360.boot.system.biz.service;

import cn.aws360.boot.data.api.pojo.request.PageQuery;
import cn.aws360.boot.data.api.pojo.response.PageResult;
import cn.aws360.boot.system.api.pojo.request.SysConfQuery;
import cn.aws360.boot.system.api.pojo.request.SysConfWrite;
import cn.aws360.boot.system.api.pojo.response.SysConfModel;
import cn.aws360.boot.system.biz.domain.SysConf;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * @author junnan
 */
public interface SysConfService extends IService<SysConf> {

    /**
     * 新增参配
     *
     * @param sysConfWrite 新增参配参数
     * @return 是否成功
     */
    Boolean add(SysConfWrite sysConfWrite);

    /**
     * 修改参配
     *
     * @param sysConfWrite 修改参配参数
     * @return 是否成功
     */
    Boolean edit(SysConfWrite sysConfWrite);

    /**
     * 删除参配
     *
     * @param ids 删除参配 ids
     * @return 是否成功
     */
    Boolean remove(String ids);

    /**
     * 查询参配详情
     *
     * @param id 查询参配 id
     * @return SysConfModel
     */
    SysConfModel detail(Integer id);

    /**
     * 查询参配列表
     *
     * @param sysConfQuery 查询参配参数
     * @return List<SysConfModel>
     */
    List<SysConfModel> findList(SysConfQuery sysConfQuery);

    /**
     * 查询参配分页
     *
     * @param sysConfQuery 查询参配参数
     * @param pageQuery    查询分页参数
     * @return PageResult<SysConfModel>
     */
    PageResult<SysConfModel> findPage(SysConfQuery sysConfQuery, PageQuery pageQuery);

    /**
     * 刷新参配缓存
     *
     * @return 是否成功
     */
    Boolean refreshCache();

    /**
     * 根据参配编码获取键值
     *
     * @param code 参配编码
     * @return value
     */
    String getValueByCode(String code);

}
